package com.ahua.mallchat.common.service;

import com.ahua.mallchat.common.domain.vo.WSBaseResp;
import io.netty.channel.Channel;

/**
 * 专门用来管理websocket的逻辑 包括推拉
 */
public interface WebSocketService {

    /**
     * 保存当前的通道
     *
     * @param channel
     */
    void connect(Channel channel);

    /**
     * 用户请求登陆
     *
     * @param channel
     */
    void handleLoginReq(Channel channel);

    /**
     * 用户下线
     *
     * @param channel
     */
    void removeChannel(Channel channel);

    /**
     * 告知前端扫码成功
     *
     * @param code
     */
    void waitAuthorize(Integer code);

    void scanLoginSuccess(Integer code, Long id);

    void authorize(Channel channel, String token);

    /**
     * 发送消息
     */
    void sendMsgToAll(WSBaseResp<?> msg);
}
